#include<iostream>
#include<iomanip>
#define pi 3.14
using namespace std;
class Shape {
public:
    virtual void getArea() { cout<<"1"<<endl; }
};
class Rectangle :public Shape {
private:
    int lenth, width;
public:
    Rectangle(int len=0, int wid=0) :lenth(len), width(wid) {}
    void getArea() { cout << lenth * width << endl; }

};
class Circle :public Shape {
private:
    int r;
public:
    Circle(int r1=0) :r(r1) {}
    void getArea() { cout << r * pi * pi << endl; }
};
int main() {
    Shape* p;

    Shape s;

    Rectangle r(4, 5);

    Circle c(2);

    p = &s;

    p->getArea();

    p = &r;

    p->getArea();

    p = &c;

    p->getArea();


	return 0;
}
//class Vehicle {
//private:
//	int wheels;
//protected:
//	int weight;
//public:
//	Vehicle() {
//		wheels = 0;
//		weight = 0;
//	}
//	Vehicle(int h, float w) {
//		wheels = h;
//		weight = w;
//	}
//	void gethw(int h, int w) {
//		wheels = h;
//		weight = w;
//	}
//	void printwheels() {
//		cout << wheels << endl;
//	}
//	void printweight() {
//		cout << weight << endl;
//	}
//	void print() {
//		cout << wheels << endl;
//		cout << weight << endl;
//
//	}
//};
//class Car :private Vehicle {
//private:
//	int displace;
//public:
//	Car(int h=0,int w=0,int d=0):Vehicle(h, w) {
//		displace = d;
//	}
//	void gethwd(int h,int w,int d) {
//		gethw(h, w);
//		displace = d;
//	}
//	void print() {
//		printwheels();
//		printweight();
//		cout << displace << endl;
//	}
//	
//};
//class Truck :protected Vehicle {
//private:
//	int payload;
//public:
//	Truck(int h=0,int w=0,int p = 0):Vehicle(h, w) {
//
//		payload = p;
//	}
//	void gethwdp(int h, int w, int p) {
//		gethw(h, w);
//		payload = p;
//	}
//	void print() {
//		printwheels();
//		printweight();
//		cout << payload << endl;
//	}
//};
//class Van :public Vehicle {
//private:
//	int load;
//public:
//	Van(int h = 0, int w = 0,  int l = 0):Vehicle(h, w) {
//		
//
//		load=l;
//	}
//	void gethwl(int h, int w, int l) {
//		gethw(h, w);
//		load = l;
//	}
//	void print() {
//		printwheels();
//		printweight();
//		cout << load << endl;
//	}
//};
//int main() {
//	Van v(4, 70, 4);
//	Car c(4, 120, 4);
//	Truck t(4, 6, 2);
//	v.print();
//	c.print();
//	t.print();
//	return 0;
//}